点，线，多边形的创建
======================

`点`
--------------
单个点的创建可以直接写成P=(x,y)的形式或者np.array((x,y))的形式（建议给矩阵形式，另一种格式只是防止出错）
多个点可以写成Points=[(a,b,c),(d,e,f),(g,h,i)] 的形式或者np.array([(a,b,c),(d,e,f),(g,h,i)])的形式
例子：  P1，P2为（1，1）和（2，2）点，Points1，Points2是(0.0,0.0),(0.5,0.0),(1.0,0.0),(1.5,0.0),(2.0,0.0)五个点

    >>> P1=(1,1)           ##创建点（1，1）
    >>> P2=np.array((2,2))
    >>> Points1 = [(0.0,0.0),(0.5,0.0),(1.0,0.0),(1.5,0.0),(2.0,0.0)]
    >>> Points2 = np.array([(0.0,0.0),(0.5,0.0),(1.0,0.0),(1.5,0.0),(2.0,0.0)])

除此之外点还可以表示为三维矩阵（此功能仅仅便于点的输入）

    >>> Points1 = [[(0.0,0.0),(0.5,0.0)],[(1.0,0.0),(1.5,0.0)],[(2.0,0.0),(2.5,0.0)]]
    >>> Points2 = np.array([[(0.0,0.0),(0.5,0.0)],[(1.0,0.0),(1.5,0.0)],[(2.0,0.0),(2.5,0.0)]])

`线，面`
-----------

线用线上一点和线的斜率定义

    >>> P1,L1 = (0,0), (1,2)

该程序为过（0，0）点，斜率为（1，2）的线

面用面上一点和面的法向量定义

    >>> P1,L1 = (0,0，0), (1,2，3)

该程序为过（0，0，0）点，法向量为（1，2，3）的面

`线段`
--------

给出起点和终点即可

    >>> P1,P2 = (0,0), (1,1)

（0，0）到（1，1）的线段

`多边形`
--------

只能创建封闭多边形，两种创建方式，一种是按顺时针或逆时针方向给出每一点的坐标，另一种是创建一个基础图形，经旋转平移变换得到三维空间图形

1.由坐标创建
vertices1 = [(0,0,0),(1,0,0),(1,1,1),(0,1,1)]
polygon1 = np.array(vertices1)

    >>> vertices1 = [(0,0,0),(1,0,0),(1,1,1),(0,1,1)]
    >>> polygon1 = np.array(vertices1)


2.创建一个基础图形后变换得到三维图形

    >>> vertices2D = Vertices([(0,0),(0,2**0.5),(1,2**0.5),(1,0)])    ##定义的分别是y和z即（y，z）





 
##旋转   alpha角为俯视图下（z轴的反方向）的旋转角（单位为°）（逆时针为正），旋转点为（x0，y0，z0）点
##       beta角为左视图下（y轴的正方形）的旋转角（逆时针为正），旋转点为（x0,y0,z0）点



    >>> x0,y0,z0 = 0,0,0    ##设定位移量 ，即把原来坐标系的（0，0）点平移到新的坐标系中的（x0，y0，z0）点
    >>> s1 = alpha, beta =-90,45
    >>> ##设定旋转角   alpha角为俯视图下（z轴的反方向）的旋转角（单位为°）（逆时针为正），旋转点为（x0，y0，z0）点
    >>> ##            beta角为左视图下（y轴的正方形）的旋转角（逆时针为正），旋转点为（x0,y0,z0）点
    >>> vertices = move(shape = vertices2D, to = (x0,y0,z0), by = (alpha,beta))   ##变换

.. image:: picture/shapes_rotation.png

